This invention relates generally to integrated circuits and more specifically to an integrated circuit architecture which allows complex integrated circuits to be easily designed.
Integrated circuit technology has advanced in the number of transistors on a chip from fewer than one hundred to many millions. As a result, it is possible to make integrated circuits (ICs or chips) which perform increasingly complex functions and thus to replace a large number of discrete components with one or several ICs, with commensurate benefits in the size, cost, and reliability of electronic systems constructed using ICs. The sizes of electronic systems incorporating these ICs decrease drastically. Since the costs of these ICs are much less than the costs of the replaced discrete components, the costs of manufacturing these electronic systems also decrease. Since the reliability of electronic systems increases as the number of interconnections decrease, the reliability of electronic systems with these ICs increases due to the reduction in the number of discrete components to be connected.
As a result of the above described advantages, many IC manufactures devote a substantial amount of research and development resources to increase the number of transistors that can be deposited on a single chip IC so that more complex circuits can be implemented by the chip. However, the complexity of the circuits and the large number of available transistors make designing ICs more difficult. Consequently, computer-aided IC design tools have been developed to make it easier for the IC designer to synthesize the desired logic and functionality without the need to manipulate transistors or gates.
Two approaches have been developed to help the IC designers: "standard cell" and "gate array." In the standard cell approach, commonly used functional blocks are carefully designed and stored in a cell library. Designers can retrieve and interconnect appropriate blocks to provide desired functions. Typically, these blocks are simple structures which can be interfaced by simply routing interconnect wiring to the appropriate input/output terminals of the blocks.
Gate array technology involves the fabrication of a large number of base wafers containing identical integrated circuit elements (gates) up to but not including the first level of conductive interconnect. The IC designers "customize" the gate array by specifying only the conductive patterns used to interconnect the pre-fabricated gates.
One of the problems of both of these approaches is that it is difficult to use them to design ICs which perform complicated functions. This is because the standard cells and gate arrays are basic building blocks for all types of applications. Consequently, it takes a lot of skill, time and effort to integrate these basic building blocks into useful circuits which perform complicated functions.
As an example, circuits used for communication applications typically perform complex signal processing operations. Such circuits include finite impulse response filters, infinite impulse response filters, PSK demodulators, and correlators. These circuits incorporate complicated mathematical algorithms which could be understood and implemented in silicon only by extremely skilled engineers. Consequently, it is very difficult to design these circuits using the basic building blocks which are available in standard cell library and gate arrays.
Some electronic system manufacturers adopt a completely different strategy to solve the above described problem. Instead of relying on custom designed ICs, they use general purpose processor ICs, such as microcontrollers and digital signal processors. Software is used to customize the function of these ICs.
One of the problems of using these general purpose ICs is that they are typically slower than ICs designed to handle a specific application. In many applications where processing speed is a critical factor, such as high speed communication systems, the performance of general purpose ICs is not acceptable. Further, the use of software does not avoid the requirement that highly skilled engineers are needed to implement the complicated mathematical algorithms.